测试makefile目标中是否存在文件,如果不存在则退出

您所在的位置:网站首页 makefile -D可以赋值吗 测试makefile目标中是否存在文件,如果不存在则退出

测试makefile目标中是否存在文件,如果不存在则退出

2024-07-12 04:31| 来源: 网络整理| 查看: 265

make中的每个命令行都在自己的子shell中运行。因此,运行exit只会退出该子shell--而不是整个makefile。默认情况下,如果任意子shell返回不成功的退出状态,则make执行将停止(按照惯例,0表示成功,因此任何其他状态都将停止执行)。最简单的方法是使用test命令的退出状态:

代码语言:javascript复制all: foo foo: test -s /opt/local/bin/gsort

打印诊断消息会使事情变得稍微复杂一些,因为像echo这样的命令将返回0的退出状态,从而导致make认为一切正常。要解决此问题,您需要在它之后运行一个命令,该命令将给子shell一个非零的退出状态:

代码语言:javascript复制all: foo foo: test -s /opt/local/bin/gsort || { echo "GNU sort does not exist! Exiting..."; exit 1; }

或者甚至只是

代码语言:javascript复制all: foo foo: test -s /opt/local/bin/gsort || { echo "GNU sort does not exist! Exiting..."; false; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3